NOTE

3.4 InnoDB undo log

1. undo log是什么 - MySQL InnoDB存储引擎的日志 - 主要记录了数据的逻辑变化 - 一条 INSERT 语句,对应一条 DELETE 的 undo log - 一条 UPDATE 语句,对应一条相反的 UPDATE 的undo log - 一条 DELETE 语句,对应一条

MySQL / Database创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. undo log是什么

  • MySQL InnoDB存储引擎的日志
  • 主要记录了数据的逻辑变化
    • 一条INSERT语句,对应一条DELETE的 undo log
    • 一条UPDATE语句,对应一条相反的UPDATE的undo log
    • 一条DELETE语句,对应一条INSERT的 undo log
  • 在实际进行增、删、改一条记录时,都需要先把对应的 undo日志 记下来

2. 为什么需要undo log

2.1. 实现原子性

  • 事务执行到一半宕机了,重启之后需要把这段不完整的修改撤销掉,这就需要undo log

2.2. 实现MVCC

3. undo log实现

3.1. 删除时机

  • 当没有事务再需要用到这些回滚日志时,回滚日志会被删除,因此尽量不要使用长事务

4. 参考